/**
 * 1624. 两个相同字符之间的最长子字符串
 * https://leetcode-cn.com/problems/largest-substring-between-two-equal-characters/
 */
public class Solutions_1624 {
    public static void main(String[] args) {
//        String s = "aa";  // output: 0
//        解释：最优的子字符串是两个 'a' 之间的空子字符串。

//        String s = "abca";  // output: 2
//        解释：最优的子字符串是 "bc" 。

//        String s = "cbzxy";  // output: -1
//        解释：s 中不存在出现出现两次的字符，所以返回 -1 。

        String s = "cabbac";  // output: 4
//        解释：最优的子字符串是 "abba" ，其他的非最优解包括 "bb" 和 "" 。

        int result = maxLengthBetweenEqualCharacters(s);
        System.out.println(result);
    }

    public static int maxLengthBetweenEqualCharacters(String s) {
        int res = -1;
        if (s == null || s.length() < 2) {
            return res;
        }
        for (int i = 0; i < 26; i++) {
            char c = (char)(i + 'a');
            int first = s.indexOf(c);
            int last = s.lastIndexOf(c);
            int cur = last - first - 1;
            res = Math.max(res, cur);
        }
        return res;
    }
}
